<#
PowerShell 脚本：upgrade_gradio_and_run.ps1
用途：在指定的 Python 可执行文件中升级 gradio（pip），然后启动目标 webapp 脚本。
用法示例：
  在 PowerShell 中运行：
    .\upgrade_gradio_and_run.ps1
  或者显式指定 Python 可执行路径和应用路径：
    .\upgrade_gradio_and_run.ps1 -PythonExe "C:\Path\to\python.exe" -AppPath "C:\path\to\optimal_knn_webapp_pinecone.py.py"

注意：建议使用 Anaconda Prompt 或管理员权限的 PowerShell 运行本脚本，确保 pip 可以写入安装目录。
#>
param(
    [string]$PythonExe = "C:\Users\yanyu\anaconda3\python.exe",
    [string]$AppPath = "C:\Users\yanyu\OneDrive\桌面\桌面\图像模式识别\pinecone\optimal_knn_webapp_pinecone.py.py"
)

Write-Host "Using Python executable: $PythonExe"
if (-not (Test-Path $PythonExe)) {
    Write-Error "Python executable not found at $PythonExe. 请确认路径并使用 -PythonExe 参数指定正确路径。"
    exit 2
}

if (-not (Test-Path $AppPath)) {
    Write-Error "Webapp file not found at $AppPath. 请确认路径并使用 -AppPath 参数指定正确路径。"
    exit 3
}

Write-Host "升级 gradio（这可能需要几分钟）..." -ForegroundColor Cyan
& $PythonExe -m pip install --upgrade gradio
$rc = $LASTEXITCODE
if ($rc -ne 0) {
    Write-Error "升级 gradio 失败（pip 返回码 $rc）。请检查网络或使用管理员权限重试。"
    exit $rc
}

Write-Host "gradio 已升级（或已是最新）。现在启动 webapp：" -ForegroundColor Green
Write-Host "运行： $PythonExe $AppPath" -ForegroundColor Gray

# 启动脚本并将输出打印到当前终端
& $PythonExe $AppPath

# 脚本结束
Write-Host "webapp 进程已退出或被停止。" -ForegroundColor Yellow
